As computer systems become more complicated, performance analysis must increasingly be performed on live production systems rather than in a development or test environment. Traditionally, computer systems have been analyzed using debugging tools to set breakpoints at specific locations of an application. The breakpoint interrupts the running of the computer system and allows the developer to inspect the operation of the application and enter commands. However, it is not always feasible to stop the operation of a computer system, especially a production system, in order to analyze its operations. In addition, in order to understand systematic issues, an impractically large number of breakpoints may be required.
Static probe are another known way of analyzing the operation of a computer system. Static probe are probes that have been pre-installed in various locations, such as the operating system kernel or other target software, throughout the computer system. When a probe is activated (or “fired”), control of the computer system's operations branch to perform the actions associated with the probe without the need of a breakpoint. Thus, static probes can be much more efficient than breakpoints. In addition, static probe can be used on a production system because of their minimal effect on operations.
However, known static probe tools also have their own disadvantages. For example, the known static probe tools may require special programming skills and kernel programming. For example, the Dtrace tool by Sun Microsystems requires special build changes to an application or operating system. In addition, the Dtrace tool requires the use of elaborate declarations and special programming in a separate language called “D.” This makes Dtrace difficult to use or implement.
Accordingly, it may be desirable to provide a system performance tool that is easy to use. It may also be desirable to provide a system performance tool with static probes that does not require special programming or elaborate declarations.